home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
wb
/
czesc_4
/
vark15
/
utils a-o
/
kick2file.lha
/
kick2file
/
Kick2File.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-06-11
|
2KB
|
91 lines
// Includes
#include <exec/types.h>
#include <pragma/dos_lib.h>
#include <dos/dos.h>
#include <iostream.h>
#include <stdlib.h>
// Konstanten
#define SMALLMAGIC 0x11114ef9
#define SMALLROM 0x00040000
#define BIGMAGIC 0x11144ef9
#define BIGROM 0x00080000
// Strukturen
struct romfileheader
{
ULONG alwaysnil;
ULONG romsize;
};
// globale Variablen
char *versi = "$VER: Kick2File 1.0 (11-Jun-1996) © by Maik \"BLiZZeR\" Schreiber [FREEWARE]";
// Programm
int main(int argc, char *argv[])
{
if (argc != 2)
cout << "Usage: Kick2File <filename>\n";
else if (((char *) argv[1])[0] == '?')
cout << "Usage: Kick2File <filename>\n";
else
{
int ret = RETURN_OK;
ULONG *base = (ULONG *) 0x00f80000,
size;
if (base[0] != BIGMAGIC)
base = (ULONG *) 0x00fc0000;
switch (base[0])
{
case SMALLMAGIC:
size = SMALLROM;
break;
case BIGMAGIC:
size = BIGROM;
break;
default:
size = NULL;
};
if (size)
{
struct romfileheader rfh = {NULL, size};
BPTR handle;
ULONG len;
cout << "\033[1mKick2File 1.0 - Copyright © 11-Jun-1996 by Maik Schreiber [FREEWARE]\033[0m\n\n\
Writing ROM data (" << sizeof(struct romfileheader) + size << " Bytes)...\n";
if (handle = Open(argv[1], MODE_NEWFILE))
{
len = Write(handle, &rfh, sizeof(struct romfileheader));
len += Write(handle, base, size);
Close(handle);
if (len != (sizeof(struct romfileheader) + size))
{
cout << "\n\033[1mCouldn't write ROM data!\033[0m\n";
ret = RETURN_FAIL;
};
};
else
{
cout << "\n\033[1mCouldn't open file!\033[0m\n";
ret = RETURN_FAIL;
};
};
else
{
cout << "\n\033[1;33mUnknown ROM size!\033[0m\n";
ret = RETURN_FAIL;
};
exit(ret);
};
};